﻿using System;

namespace Scommesse.Model
{
    [Serializable]
    public class BetCardAdmin : IBetCard
    {
        public BetCardAdmin(Cliente cliente, String codiceTessera, String pin)
        {
            CodiceTessera = codiceTessera;
            Cliente = cliente;
            Pin = pin;
            Bloccata = false;
        }

        public string CodiceTessera { get;  set; }
        public Cliente Cliente { get;  set; }
        public string Pin { get;  set; }
        public bool Bloccata { get; set; }

        public int TentativiErrati { get; private set; }

        public bool VerificaPin(String pin)
        {
            if (Bloccata) throw new InvalidOperationException("tessera bloccata");
            if (pin == null) throw new ArgumentNullException("pin");
            if (Pin.Equals(pin))
                return true;

            TentativiErrati++;
            if (TentativiErrati >= 3)
                Bloccata = true;
            return false;
        }
    }
}
